A common way of modeling the process of developing a software product is to use the so-called waterfall model, the premise of which is that works in a downstream process cannot be started until after the specification of its upstream process is established.
Basically, a project plan (defines the creation period of a product created in a development process and a person in charge of the creation) which serves as the basis of production management in software development is created according to the man-hour of work in the respective processes. Examples of how the man-hour is estimated include the function point method (FP method) which determines the scale of software from the software's functions and the COCOMO model which pays attention to the count of source code lines to determine the scale of software (see Non-patent Document 1, for example).
A technique for improving the precision of a project plan has been proposed in which products created in the process of developing software are established, work procedures for creating the products and input products necessary for the work are held, and the man-hour of each product is estimated from its input product (see Patent Document 1).
[Non-Patent Document 1]
“Software Cost Estimation”, Joho Shari (the magazine of Information Processing Society of Japan), Vol. 33, No. 08 (1992)
[Patent Document 1]
JP 08-202773 A
The productivity of software development is measured generally by the scale of the software product and the time required for the development. Conventionally employed measures of the software product scale are the count of source code lines upon completion of the development, function points, the document amount of the software product, and the like. As the time required for the development, the total count of people and the time reported by individual engineers but yet to be validated are collected and employed. In measuring the productivity of software product development where multiple engineers participate, the time put forth by one engineer and the time put forth by another are treated uniformly as having the same value, despite the fact that each individual engineer has different abilities. The actual productivity performance thus contains mixed abilities of individual engineers, which impairs the validity of applying a statistical value derived from past actual performance values to a plan value of the development productivity by way of feedback.
Patent Document 1, in particular, does not mention the development productivity and the premise of the technique disclosed therein is that an accurate estimation value is input for the man-hour required for the development. Furthermore, the validity of comparing the product development productivity between different software projects is not held. It is therefore impossible to compare plan values of the development productivity required for software product development with each other for evaluation of relative merits and to measure the degree of improvement from a comparison with past actual performance values.
Moreover, in actual development, a specification cannot be established fully in an upstream process and starting on work in a downstream process before the specification is established is accordingly unavoidable. In other words, a change in specification is the norm in the process of software development, and the specification change causes the disposal, replacement, and addition of a source code or a product of software development. As a matter of fact, a product developed halfway is often discarded in the process of software product development.
It is usually the scale of a finished software product that is measured as the software product scale, and the measured software product does not contain the scale of a product that has been created during the development but discarded as a result of a specification change (hereinafter referred to as “change net discarded scale”). Since the change net discarded scale is not incorporated in the software production scale despite the fact that the work put forth before the disposal due to the specification change is valid, the actual productivity performance is varied depending on how many times the specification has been changed. In other word, the productivity which is one of process capabilities of software development cannot be measured accurately unless the change net discarded scale is added to the scale of the finished product.
In addition, although a change in specification occurs during development, prior art does not take a specification change during development into consideration, and needs to change the project plan once a specification change occurs. This is one of the factors that lower the precision of the project's process plan.
An object of the present invention is therefore to provide a software development production management system capable of forming as appropriate a software development plan as possible and, if there is a difference between the assessment of actual development and the formed plan, enhancing the reliability progressively by feeding the difference back to data based on which a plan is formed.
According to the present invention, there is provided a software development production management system including: a management database which holds development process component data necessary to model a development process of software, and estimation parameter data used to estimate a development plan of the software; and a software development production management device which defines a software development process to be managed by consulting the development process component data held in the management database, and uses the estimation parameter data to create a software development plan from the defined software development process, in which the software development production management device has a processing means which, upon completion of the software development, compares and evaluates an actually performed development process and the created software development plan, and makes a correction to the estimation parameter data based on results of the comparison and evaluation so that details of the actually conducted software development can be fed back to a development plan for the next time software is developed.
Further, according to the present invention, in the software development production management system, the software development production management device includes: a standard plan integration module which defines the software development process to be managed based on the development process component data, and then creates a standard software development plan containing scales and man-hours of respective work operations in the defined software development process; an execution plan creating module which assigns the work operations to workers taking into consideration the scales and man-hours of the respective work operations in the standard software development plan, and corrects details of the work operations assigned in accordance with abilities of the respective workers to create an adjusted software development plan; an actual performance information collecting module which, in developing software in accordance with the adjusted software development plan, collects actual performance information containing actual man-hour performance and actual scale performance, the actual man-hour performance being a man-hour that is actually put in by the respective workers, the actual scale performance being a scale of work that is actually done; a process completion monitoring module which, upon completion of the software development, evaluates a difference between details of the actually conducted development and the software development plan created in the execution plan creating module in a manner that includes a cause of the difference and quality of the developed software in the evaluation, and feeds results of the evaluation back to an adjustment made by the execution plan creating module; and an individual productivity evaluating module which evaluates information about productivities of the respective workers taking into consideration the actual man-hour performance and the actual scale performance, and feeds results of the evaluation back to an adjustment made by the execution plan creating module
Further, according to the present invention, in the software development production management system, the software development production management device includes an actual production performance evaluating module which performs comparative evaluation between software development plan forming and work according to the formed plan on multiple software development projects to take statistics, and feeds the statistics back to the creation of the standard software development plan in the standard plan integration module
While keeping track of the past record of software development is becoming be common in the current software industry, accumulating it as empirical values in preparation for the next development to be reused in creation of a software development plan by way of feedback presents a difficulty in setting a measure of quantification, and therefore has not been realized.
Further, according to the present invention, in the software development production management system, the management database holds, as a productivity empirical value, a labor cost per unit amount of a product, and records a unit labor cost of each employee, and the execution plan creating module calculates productivity of each employee by dividing a product of the productivity empirical value and an actual product amount by the unit labor cost of each employee.
Further, according to the present invention, in the software development production management system, the management database has given development productivity reference data which is a ratio of a given workload to given product amount, the given workload being a workload in a given software development environment, the given product amount being a product amount in the given software development environment, and the execution plan creating module uses a first comparison coefficient and a second comparison coefficient as tailoring parameters, and calculates development productivity reference data in software development for which a plan is to be formed by an expression “given development productivity reference data×second comparison coefficient/first comparison coefficient”, the first comparison coefficient being a ratio of a product amount in an environment of the software development for which a plan is to be formed to the given product amount, the second comparison coefficient being a ratio of a workload in the environment of the software development for which a plan is to be formed to the given workload.
In the current software industry, there are no integrated measures and, although empirical values of the productivities of very similar software development projects are accumulated to be reused, reusing empirical values in software development of different characteristics is not practiced.
Further, according to the present invention, in the software development production management system, the management database holds a productivity fluctuation rate which takes into account factors influencing a software development productivity, and the execution plan creating module calculates a development productivity in the software development for which a plan is to be formed from the development productivity reference data and the productivity fluctuation rate.
Further, according to the present invention, in the software development production management system, the execution plan creating module keeps track of each specification change made to a software product in terms of a specification change time which is when the specification change is thought to occur, a change added scale which is an amount added due to the specification change, and a change discarded scale which is an amount discarded due to the specification change, and the change added scale is added to an initial scale and the change discarded scale is subtracted from the initial scale each time the specification change time arrives to calculate an ultimately realized scale which is a scale the software product will have upon completion, the initial scale being a software product scale that is created in the standard plan integration module.
Further, according to the present invention, in the software development production management system, the management database holds a standard rate for each work operation, the standard rate being an expected value of a labor cost in relation to a unit time of a group of standard workers, and the execution plan creating module calculates for each work operation a development labor cost required for the software development with respect to work operations of the respective workers, and divides the development labor cost by the standard rate to calculate a work time of the work in question.
Further, according to the present invention, in the software development production management system, the management database holds for each worker an ability rank of each worker as an attribute, and holds for each rank a skill coefficient, which is based on how long it takes for a worker of this rank to master a work operation, and, when a worker is assigned to a work operation, the execution plan creating module calculates a time required for the assigned worker to finish the work operation from the rank of the assigned worker and the skill coefficient of this work operation.
Further, according to the present invention, in the software development production management system, the individual productivity evaluating module updates the ranks of the respective workers based on actually conducted work operations.
Further, according to the present invention, in the software development production management system, the process completion monitoring module calculates a scale of actually developed software by adding a change net discarded scale to a final scale of the software, evaluates actual work based on the calculated scale of the software, makes a result of the evaluation reflected on the estimation parameter data, and/or obtains intermediate development productivity reference data from an actual development productivity and an actual productivity fluctuation rate, the change net discarded scale being a discarded amount of an already developed part which is discarded due to a specification change in a process of software development, the actual development productivity being a development productivity in the actually conducted software development, the actual productivity fluctuation rate being set taking into consideration a factor unique to this software development that has actually influenced the actual development productivity, and the process completion monitoring module uses the first comparison coefficient and the second comparison coefficient, which are set upon planning, to automatically remove a correction made due to an environment of this software development from the intermediate development productivity reference data, thereby obtaining more general development productivity reference data and enhancing accuracy of the given development productivity reference data.
Also, according to the present invention, a computer program and recording medium for causing a computer to operate as a software development production management system are obtained.
The computer program builds, when read and executed by a computer with a storage device, builds in the storage device a management database for holding development process component data necessary to model a development process of software, and estimation parameter data used to estimate a development plan of the software, and causes the computer to operate as a software development production management device, the software development production management device defining a software development process to be managed by consulting the development process component data held in the management database, and using the estimation parameter data to create a software development plan from the defined software development process. The computer program forms in the computer a processing means which, upon completion of the software development, compares and evaluates an actually performed development process and the created software development plan, and makes a correction to the estimation parameter data based on results of the comparison and evaluation so that the computer can feed details of the actually conducted software development back to a development plan for the next time software is developed. Further, the recording medium is a computer-readable recording medium which records the computer program described above.
According to the present invention, a development plan is formed based on given information and the given information can be updated with information obtained through actual development. The precision of a formed plan is therefore enhanced by repeatedly performing software development production management.
Also, according to the present invention, evaluation of actual development takes into account the work that does not appear in the actual development result due to a specification change which has taken place in the process of development. The precision of evaluating actual development is therefore enhanced and the precision of a plan subsequently formed based on the evaluation is accordingly improved.
Also, according to the present invention, evaluation of actual development takes into consideration matters that are unique to the environment of the development and influence the development in a manner that removes the influence. A more universal evaluation is thus obtained based on actual development, and the precision of a subsequently formed plan is enhanced as a result.
Furthermore, according to the present invention, the abilities of workers assigned to the respective work operations are also taken into account in calculating the productivities of the respective work operations upon planning, and a plan truer to the reality is thus obtained.